package cn.hanyx.coder.design.pattern.behavioral.state.demo03.state;

import cn.hanyx.coder.design.pattern.behavioral.state.demo03.MarioStateMachine;

/**
 * IMario
 * 状态的接口
 *
 * @author hanyx
 * @date 2020/06/08
 */
public interface IMario {

    /**
     * 返回马里奥名称
     *
     * @return
     */
    State getName();

    /**
     * 获取蘑菇
     *
     * @param stateMachine
     */
    void obtainMushRoom(MarioStateMachine stateMachine);

    /**
     * 获取斗篷马里奥
     *
     * @param stateMachine
     */
    void obtainCape(MarioStateMachine stateMachine);

    /**
     * 获取火焰马里奥
     *
     * @param stateMachine
     */
    void obtainFireFlower(MarioStateMachine stateMachine);

    /**
     * 碰到怪物
     *
     * @param stateMachine
     */
    void meetMonster(MarioStateMachine stateMachine);
}
